#! /usr/bin/env python
# -*- coding: utf-8 -*-

# Copyright (c) JoinQuant Development Team
# Author: Huayong Kuang <kuanghuayong@joinquant.com>

class Base(object):

    a = 1

    @classmethod
    def f1(cls):
        print("this is classmethod")

    @staticmethod
    def f2():
        print("this is staticmethod")

    def f3(self):
        print("this is instance method")


class Moo(Base):

    pass


class Noo(Base):

    pass


m = Moo()
n = Noo()
n2 = Noo()
assert m.f1 is not n.f1
assert m.f2 is n.f2
assert n.f3 is not n.f3
assert n.f1 is n2.f1
assert n.f2 is n2.f2
assert n.f3 is not n2.f3
